package com.jlcloud.core.oauth2.provider;

import lombok.Data;
import lombok.experimental.Accessors;
import com.jlcloud.core.tool.support.Kv;
import com.jlcloud.core.tool.utils.StringUtil;

import java.io.Serial;
import java.io.Serializable;

/**
 * OAuth2Token
 *
 * @author By: JlCloud <br>
 * @Package: com.jlcloud <br>
 * @CreateTime: 2024-12-03 21:45 <br>
 * @Copyright: 2021 www.jilianjituan.com Inc. All rights reserved. <br>
 * @Caution 注意：本内容仅限于冀联人力集团内部传阅，禁止外泄以及用于其他的商业目的 <br>
 */
@Data
@Accessors(chain = true)
public class OAuth2Token implements Serializable {

	@Serial
	private static final long serialVersionUID = 1L;

	/**
	 * 实例化
	 */
	public static OAuth2Token create() {
		return new OAuth2Token();
	}

	/**
	 * 令牌值
	 */
	private String accessToken;

	/**
	 * 刷新令牌值
	 */
	private String refreshToken;

	/**
	 * 令牌过期秒数
	 */
	private int accessTokenExpire;

	/**
	 * 刷新令牌过期秒数
	 */
	private int refreshTokenExpire;

	/**
	 * 令牌参数
	 */
	private Kv args = Kv.create();


	/**
	 * 是否包含令牌
	 *
	 * @return Boolean
	 */
	public Boolean hasAccessToken() {
		return StringUtil.isNotBlank(accessToken);
	}

	/**
	 * 是否包含刷新令牌
	 *
	 * @return Boolean
	 */
	public Boolean hasRefreshToken() {
		return StringUtil.isNotBlank(refreshToken);
	}

}
